PyPI 强制要求对关键项目部署2FA机制,遭一些开发人员反对
编译:代码卫士
数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。
随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。
为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。
注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。
尽管很多社区员工对此举表示赞赏,但某个热门Python 项目的开发人员决定从 PyPI 中删除代码并重新发布,使该项目获得的“关键 (Critical)”状态无效。
前不久,PyPI 注册表的管理员表示正在为被认为“关键”的项目引入2FA要求。在六个月来下载量排名前1%的任何PyPI项目以及PyPI的依赖关系都被视为“关键”级别。
管理员在一篇博客文章中指出,“为了改进Python 生态系统的整体安全性,PyPI 开始为关键项目执行双因素认证 (2FA) 要求。该要求将在未来几个月生效。”此外,关键项目的维护人员也可获得由谷歌开源安全团队支持的免费硬件安全密钥。
这项计划是在npm和 PyPI 生态系统的多个合法软件库遭劫持后推出的。去年,维护人员账户被攻陷后,使用广泛的npm 库 “ua-parser-js”、”coa” 和 “rc”被恶意软件修改。为此,npm 的母公司GitHub 采取多项措施在2021年12月开始向开发人员推出增强登录体验(2FA选项),进一步的安全更新在今年5月发布。
随着PyPI 项目 “ctx” 被劫持(最后证明是“道德”实验),PyPI 开始追溯 GitHub 为维护人员账户执行2FA。PyPI 管理员解释称,“确保最广泛使用的项目拥有账户接管防护措施是我们为所有PyPI 用户保护Python 神态系统整体安全努力的一部分”。管理员表示已经将超过3818个 PyPI 项目和8218名PyPI 用户账户标记为“关键”,他们将被要求应用2FA机制。
尽管如此,超过2.8万个PyPI 用户账户(包括和“关键”项目无关的账户)已自愿启用2FA机制。
尽管多数项目表示欢迎 PyPI 对增强软件供应链整体安全性的举措,但一些项目开发人员并不如此。
“atomicwrites” PyPI 项目的开发人员 Markus Unterwaditzer 从PyPI 收到“祝贺!” 邮件通知他自己的项目被列为“关键”状态并要求应用双因素认证机制后决定从该注册表中删除代码。据称,Unterwaditzer 的 atomicwrites在某个月份已经获得超过600万次的下载量。
某些开发人员将此举和2016年发生的 left-pad 事件相提并论,后者从npm注册表中删除了关键的JavaScript 项目,几乎影响整个互联网。
尽管在本案例中,Unterwaditzer 仅仅是重新发布了 “atomicwrites” 版本以重置下载次数(因此其被PyPI 评为“关键”项目的状态也无效)而并没有撤销代码。”left-pad” 事件的情况有所不同,牵涉商标争议。
Unterwaditzer 表示,“我决定降级这个程序包。虽然我很遗憾删除了该程序包并最终启用了2FA,但我认为PyPI 突然改变规则和删除程序包有关奇怪行为不值得我花时间免费维护如此流行的Python软件。我宁愿为乐趣而写代码,在我真正获得报酬时才担心供应链安全问题。”
Unterwaditzer 随后在24小时内将原项目删除并确实重新发布了项目的所有版本。
社区其他成员在此事也表达附和意见。基于Python 的微型 web 框架的作者 Flask 指出,“当我创建开源项目时,我并没有选择创建一个‘关键’的程序包。它是随着时间的增长而变得关键。目前,成为关键程序包的后果非常温和:你只需要启用2FA即可。但现在已经划了一条线,我不确定为何 PyPI 不会做出进一步限制。我们没有将压力传递给程序包用户,而是向已经投入时间和精力的开发人员施压。从Index的角度来看,不想所有人施加规则存在好处,因为这些规则虽然可能会让使用index变得有压力,但仅对关键程序包施加压力并不会对后者的采用率造成太大影响。”
牵涉开源软件组件的恶意软件事件和攻击不断增多,迫使注册表管理员不得不保护平台的安全性。而开发人员除了开发项目外,还需应对平台因保护项目安全而施加的压力,目前尚不清楚此举和他们的自身预期碰撞将产生何种效果。
问题来了,你站谁?
奇安信开源软件供应链安全技术应用方案获2022数博会“新技术”奖
热门PyPI 包 “ctx” 和 PHP库 “phpass” 长时间未更新遭劫持,用于窃取AWS密钥
趁机买走热门包唯一维护人员的邮件域名,我差点发动npm 软件供应链攻击
和GitHub 打官司?热门包 SheetJS出走npmjs.com转向自有CDN
不满当免费劳力,NPM 热门库 “colors” 和 “faker” 的作者设无限循环
NPM流行包再起波澜:维护人员对俄罗斯用户发特定消息,谁来保证开源可信?
200多个恶意NPM程序包针对Azure 开发人员,发动供应链攻击
NPM 修复两个严重漏洞但无法确认是否已遭在野利用,可触发开源软件供应链攻击
热门NPM库 “coa” 和“rc” 接连遭劫持,影响全球的 React 管道
速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年
Pwn2Own大赛回顾:利用开源服务中的严重漏洞,攻陷西部数据My Cloud PR4100
热门开源后端软件Parse Server中存在严重的 RCE ,CVSS评分10分
https://www.bleepingcomputer.com/news/security/pypi-mandates-2fa-for-critical-projects-developer-pushes-back/
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。